package com.ruoyi.common.core.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author：liyouxin
 * @date：2023/11/20 19:30
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StorePan extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * $column.columnComment
     */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String panRange;

    /**
     * $column.columnComment
     */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty("${comment}")
    private String panTime;

    /**
     * 园区
     */
    @Excel(name = "园区")
    @ApiModelProperty("园区")
    private String area;

    /**
     * 次数
     */
    private Long count;

    /**
     * 盘点单号
     */
    @Excel(name = "盘点单号")
    @ApiModelProperty("盘点单号")
    private String panNum;

    @Excel(name = "审核状态 审核状态 0-待审核 1-审核中 2-未通过 3-通过")
    @ApiModelProperty("审核状态 审核状态 0-待审核 1-审核中 2-未通过 3-通过")
    private String approvalState;

    @Excel(name = "总金额")
    @ApiModelProperty("总金额")
    private BigDecimal money;

    @ApiModelProperty("审核人")
    private String approvalUser;

    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;

    private Long approvalUserId;


    @ApiModelProperty("盘点明细")
    private List<StorePanDetail> storePanDetailList;

    public List<StorePanDetail> getStorePanDetailList() {
        return storePanDetailList;
    }

    public void setStorePanDetailList(List<StorePanDetail> storePanDetailList) {
        this.storePanDetailList = storePanDetailList;
    }

    public String getApprovalState() {
        return approvalState;
    }

    public void setApprovalState(String approvalState) {
        this.approvalState = approvalState;
    }

    public String getApprovalUser() {
        return approvalUser;
    }

    public void setApprovalUser(String approvalUser) {
        this.approvalUser = approvalUser;
    }

    public Date getApprovalTime() {
        return approvalTime;
    }

    public void setApprovalTime(Date approvalTime) {
        this.approvalTime = approvalTime;
    }

    public Long getApprovalUserId() {
        return approvalUserId;
    }

    public void setApprovalUserId(Long approvalUserId) {
        this.approvalUserId = approvalUserId;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setPanRange(String panRange) {
        this.panRange = panRange;
    }

    public String getPanRange() {
        return panRange;
    }

    public void setPanTime(String panTime) {
        this.panTime = panTime;
    }

    public String getPanTime() {
        return panTime;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getArea() {
        return area;
    }

    public void setCount(Long count) {
        this.count = count;
    }

    public Long getCount() {
        return count;
    }

    public void setPanNum(String panNum) {
        this.panNum = panNum;
    }

    public String getPanNum() {
        return panNum;
    }

    @Override
    public String toString() {
        return "StorePan{" +
                "id=" + id +
                ", panRange='" + panRange + '\'' +
                ", panTime='" + panTime + '\'' +
                ", area='" + area + '\'' +
                ", count=" + count +
                ", panNum='" + panNum + '\'' +
                ", approvalState='" + approvalState + '\'' +
                ", money=" + money +
                ", approvalUser='" + approvalUser + '\'' +
                ", approvalTime=" + approvalTime +
                ", approvalUserId=" + approvalUserId +
                ", storePanDetailList=" + storePanDetailList +
                '}';
    }
}
